import axios from 'axios';
import interFace from './api.js';

/**
 *  封装axios
 *  @param {String} url             请求地址
 *  @param {String} type            请求的类型
 *  @param {Object} param           请求参数
 *  @param {Function} callback      请求成功后，这里会有两个参数,服务器返回数据，返回状态，[data, res]
 *  @param return
 */
export function ajax(url, type, param, callback) {
  var setting = {
    url: url,
    method: type,
    params: param,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    time: 10 * 1000,
    responseType: 'json'
  }
  console.log(setting)
  axios(setting).then((res) => {
    callback(res.data)
  }).catch((error) => {
    callback(error)
  });
}

/**
 *  获取url传过来的参数
 *  @param {String} name        获取的参数
 *  @param {String} Url         自定义获取参数的链接
 *  @param return
 */
export function getUrlQuery(name, Url) {
  var reg = new RegExp('(^|\\?|&)' + name + '=([^&]*)(\\s|&|$)', 'i');
  var url = Url || window.location.href;
  if (reg.test(url)) {
    return decodeURI(RegExp.$2.replace(/\+/g, ' '));
  }
  return ''
}

/**
 *  获取系统时间
 *  @param {String} opt        需要获取的时间格式 y:m:d
 *  @param return
 */
export function getDate(opt) {
  var date = new Date();
  var year = date.getFullYear().toString()
  var month = (date.getMonth() + 1).toString()
  var day = date.getDate().toString()

  // 时间转换如果时间长度为1则加0
  month = month.length > 1 ? '' + month : '0' + month
  day = day.length > 1 ? '' + day : '0' + day

  // 获取时间分割符
  var chars = opt.replace(/[a-zA-Z]/g, '');
  var splits = chars.substring(0, chars.length - 1)

  // 定义一个空的字符串
  var timer = '';
  for (let val of opt.split(splits)) {
    val = val.toUpperCase();
    if (val === 'Y') {
      timer += year + splits
    } else if (val === 'M') {
      timer += month + splits
    } else if (val === 'D') {
      timer += day + splits
    }
  }
  if (splits !== '') {
    timer = timer.substring(0, timer.length - 1);
  }
  return timer
}

/**
 *  api接口
 *  @param {Object}         接口对象
 *  @param return
 */
export const api = interFace;
